package com.tom;

import java.sql.*;

public class MyJDBC {

	public static void main(String[] args) {
		Connection conn;
		Statement stmt;
		PreparedStatement preStmt;
		ResultSet rs1,rs2;
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;database=CH06範例資料庫;user=sa;password=111");
			stmt=conn.createStatement();
			
			/* 若是使用 SQL 語法在 JAVA 端執行, 設transaction的方式
			 * conn.setAutoCommit(false);  //將AutoCommit設成false, 表示為 隱含式交易
			 */
			
			//使用 SQL 語法
			rs1=stmt.executeQuery("select * from 員工");
			while (rs1.next()){
				System.out.println(rs1.getString("姓名"));
			}
			
			/*
			 * conn.commit(); 完成交易時的 commit or rollback
			 * 將以上多個 rs1.executeUpate() 設為一個交易 
			 */
			
			System.out.println("==========");
			
			//使用Stored Procedure , 
			//使用Stored procedure可以將交易放在後端的預存程序內處理 begin tran ... commit
			preStmt=conn.prepareStatement("{call spQueryProd (3)}");
			rs2=preStmt.executeQuery();
			while (rs2.next()){
				System.out.println(rs2.getString("產品名稱"));
				System.out.println(rs2.getString("備註"));				
			}
			
			rs1.close();
			stmt.close();
			conn.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
			}
		
		
			
	
	}
}
